package com.open.system.mapper;

import com.open.system.model.UserNotice;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 用户通知关联 Mapper
 * @author ：大树03
 * @date 2025-07-26 19:54
 */
public interface UserNoticeMapper {

	/**
	 * 添加对象
	 * @param model
	 * @return boolean
	 * @date 2025-08-04 22:10
	 */
	Boolean save(UserNotice model);

	/**
	 * 修改对象
	 * @param model
	 * @return boolean
	 * @date 2025-08-04 22:10
	 */
	Boolean update(UserNotice model);

	/**
	 * 批量添加对象
	 * @param models
	 * @return boolean
	 * @date 2025-08-04 22:10
	 */
	Boolean batchSave(@Param("models") List<UserNotice> models);

	/**
	 * 批量修改对象
	 * @param models
	 * @return boolean
	 * @date 2025-08-04 22:10
	 */
	Boolean batchUpdate(@Param("models") List<UserNotice> models);

	/**
	 * 根据主键查询
	 * @param pk
	 * @return  UserNotice
	 * @date 2025-08-04 22:10
	 */
	UserNotice findByPk(Long pk);

	/**
	 * 分页查询
	 *
	 * @param map
	 * @return
	 */
	List<UserNotice> findPage(Map<String, Object> map);

	/**
	 * 根据条件查询记录数
	 *
	 * @param map
	 * @return Integer
	 */
	Integer findPageCount(Map<String, Object> map);

	/**
	 * 根据条件查询
	 *
	 * @param map
	 * @return
	 */
	List<UserNotice> findByModel(Map<String, Object> map);

	/**
	 * 根据主键批量删除
	 * @param pks
	 * @return int
	 * @date 2025-08-04 22:10
	 */
	int remove(@Param("pks") List<Long> pks);

	/**
	 * 根据主键删除
	 * @param pk
	 * @return int
	 * @date 2025-08-04 22:10
	 */
	int delete(Long pk);

	int removeByUserId(Long id);

	Integer countByModel(Map<String, Object> map);
}